package com.yunke.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.yunke.common.base.YunkeBaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * 用户分佣实体类
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dz_user_commission")
@Schema(description = "用户分佣")
public class YunkeUserCommission extends YunkeBaseEntity {

    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private Long userId;

    /**
     * 邀请用户ID
     */
    @Schema(description = "邀请用户ID")
    private Long inviteUserId;

    /**
     * 分佣类型：1-注册奖励 2-充值分佣 3-消费分佣 4-VIP分佣
     */
    @Schema(description = "分佣类型：1-注册奖励 2-充值分佣 3-消费分佣 4-VIP分佣")
    private Integer commissionType;

    /**
     * 关联订单ID
     */
    @Schema(description = "关联订单ID")
    private Long orderId;

    /**
     * 订单金额
     */
    @Schema(description = "订单金额")
    private BigDecimal orderAmount;

    /**
     * 分佣比例（百分比）
     */
    @Schema(description = "分佣比例（百分比）")
    private BigDecimal commissionRate;

    /**
     * 分佣金额
     */
    @Schema(description = "分佣金额")
    private BigDecimal commissionAmount;

    /**
     * 分佣状态：1-待发放 2-已发放 3-已取消
     */
    @Schema(description = "分佣状态：1-待发放 2-已发放 3-已取消")
    private Integer status;

    /**
     * 发放时间
     */
    @Schema(description = "发放时间")
    private Long grantTime;

    /**
     * 分佣层级：1-一级 2-二级 3-三级
     */
    @Schema(description = "分佣层级：1-一级 2-二级 3-三级")
    private Integer level;

    /**
     * 备注说明
     */
    @Schema(description = "备注说明")
    private String remark;
} 